package com.vains.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vains.entity.OauthPermission;
import com.vains.entity.customer.OAuthPermissionCustomer;

import java.util.List;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author vains
 * @since 2020-06-08
 */
public interface IOauthPermissionService extends IService<OauthPermission> {

    /**
     * 获取所有导航
     * @return 导航列表
     */
    List<OauthPermission> getMenus();

    /**
     * 获取所有未删除的资源
     * @return 所有未删除的资源
     * @param page 分页帮助
     */
    List<OauthPermission> getPermissions(Page<OauthPermission> page);

    /**
     * 是否有权限 参数自动赋值
     * @return true 有权限 false 无权限
     */
    boolean hasPermission();

    /**
     * 获取所有未删除的资源
     * @return 所有未删除的资源 带有父节点名称
     * @param page 分页帮助
     */
    List<OAuthPermissionCustomer> getAllPermissions(Page<OauthPermission> page);

    /**
     * 检查权限名是否合法
     * @param name 权限名
     * @return 返回布尔值
     */
    boolean checkPermissionName(String name);

    /**
     * 检查权限地址是否合法
     * @param url 权限地址
     * @return 返回布尔值
     */
    boolean checkPermissionUrl(String url);

    /**
     * 检查url是否有权限 访问
     * @param url 请求地址
     * @return true 有权限 false 无权限
     */
    boolean hasPermission(String url);

}
